fix: support reading and writing JSON columns - #813
Open
vgrigoriu wants to merge 1 commit into
Open
Conversation
vgrigoriu
force-pushed
the
vgrigoriu/push-tvzqtwvtnqsm
branch
from
September 10, 2026 06:57
0358d8c to
57c6bc8
Compare
There was a problem hiding this comment.
✅ Gate recommendation: approve.
The previously reported CREATE TABLE property mismatch is fixed: the unsupported helper and its claim were removed. The connector now consistently maps Lance’s physical lance.json/LargeBinary representation to Spark StringType metadata and writes canonical arrow.json UTF-8 fields; the real-dataset schema, read, append, and round-trip paths are covered across the supported shared implementation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Spark support for Lance JSON columns.
JSON is exposed to Spark as StringType with the canonical arrow.json extension marker, while Lance persists it as JSONB (LargeBinary with
lance.json). The connector recognizes the physical schema returned by lance-core , maps it to Spark’s logical representation, and writes JSON strings back using Arrow’s arrow.json extension so Lance can encode them correctly.Includes test coverage for schema inference, reading/querying JSON text, appending to existing JSON columns, Spark read/write round-trips, preserving ordinary string columns, and verifying Spark-created JSON columns use Lance’s physical JSONB representation.